package com.boarsoft.boar.sys;

import java.util.List;

import com.boarsoft.boar.sys.entity.RoleFunc;
import com.boarsoft.boar.sys.entity.SysFunc;
import com.boarsoft.common.dao.PagedResult;

public interface SysFuncBiz {
	/**
	 * 模块列表
	 * 
	 * @param key
	 * @param pageNo
	 * @param pageSize
	 * @param orderBy
	 * @return
	 */
	PagedResult<SysFunc> list(String key, String orderBy, int pageNo, int pageSize);

	/**
	 * 新增模块
	 * 
	 * @param func
	 * @return
	 */
	Boolean add(SysFunc func);

	/**
	 * 修改模块
	 * 
	 * @param func
	 * @return
	 */
	Boolean update(SysFunc func);

	/**
	 * 删除模块
	 * 
	 * @param code
	 * @return
	 */
	Boolean delete(String code);

	/**
	 * 启用模块
	 * 
	 * @param code
	 */
	SysFunc start(String code);

	/**
	 * 停用模块
	 * 
	 * @param code
	 * @return
	 */
	SysFunc stop(String code);

	/**
	 * 批量保存sysFunc和roleFunc数据
	 * 
	 * @param sysFuncs
	 * @param roleFuncs
	 */
	void save(List<SysFunc> sysFuncs, List<RoleFunc> roleFuncs);

	/**
	 * 批量删除SysFunc，自动根据级联关系删除RoleFunc
	 * 
	 * @param sysFuncs
	 */
	void delete(List<SysFunc> sysFuncs);

	/**
	 * 根据code查询
	 * 
	 * @param code
	 * @return
	 */
	SysFunc get(String code);
}
